﻿space_init:
	hotMethod:=1                 ;等于1时为热键模式，等于0时为输入模式
	SetTimer AnyKeyPressed, 100
return

AnyKeyPressed:
	;A_TimeIdleKeyboard < 1000  1秒内连续敲击键盘视为输入状态
	;!GetKeyState("space", "P")  当前space没有被按着
	;A_ThisHotkey == "$space"   当前的热键是空格键
	;A_TimeSinceThisHotkey      本次热键被按着的时间（解决输入文字时空格还没抬起，字母已经按下的情况）
	;总体的逻辑为，1秒连续敲击键盘，并且space没有被按着，或者空格键被按着的时间小于200毫秒的时候，视为输入模式
    if( A_TimeIdleKeyboard < 1000 && (!GetKeyState("space", "P") || A_ThisHotkey == "$space" && A_TimeSinceThisHotkey < 200)){
    ;if( A_TimeIdleKeyboard < 1000 ){
		hotMethod:=0 
	}Else{
		hotMethod:=1
	}
return   


;使空格键既可以作为普通的空格键使用也可以作为快捷键的修饰键
$space::
	if(hotMethod==0){  
		Send {space}  
	} 
	if(hotMethod == 1){
		KeyWait,space,T1
		if(!GetKeyState("space", "P") && A_TimeSinceThisHotkey < 200){
			Send {space}
		}
	}
return               

;一下都是space按下时的快捷键
#if GetKeyState("space", "P") && hotMethod==1
i::up			;向上
k::down			;向下
j::left			;向左 
l::right		;向右
u::home			;home
o::end			;end
`;::^right		;右移一个单词
h::^left		;左移一个单词
d::del			;向后删除
b::BackSpace	;向前删除

#If